package com.sdry.project.service;

import java.util.List;
import com.sdry.project.entity.ProjectExpert2023;
import com.sdry.project.entity.ProjectExpertEntity;

/**
 * 二次评审Service接口
 * 
 * @author tdd
 * @date 2023-12-12
 */
public interface IProjectExpert2023Service 
{
    /**
     * 查询二次评审
     * 
     * @param id 二次评审ID
     * @return 二次评审
     */
    public ProjectExpert2023 selectProjectExpert2023ById(Long id);

    /**
     * 查询二次评审列表
     * 
     * @param projectExpert2023 二次评审
     * @return 二次评审集合
     */
    public List<ProjectExpert2023> selectProjectExpert2023List(ProjectExpert2023 projectExpert2023);

    /**
     * 新增二次评审
     * 
     * @param projectExpert2023 二次评审
     * @return 结果
     */
    public int insertProjectExpert2023(ProjectExpert2023 projectExpert2023);

    /**
     * 修改二次评审
     * 
     * @param projectExpert2023 二次评审
     * @return 结果
     */
    public int updateProjectExpert2023(ProjectExpert2023 projectExpert2023);

    /**
     * 批量删除二次评审
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteProjectExpert2023ByIds(String ids);

    /**
     * 删除二次评审信息
     * 
     * @param id 二次评审ID
     * @return 结果
     */
    public int deleteProjectExpert2023ById(Long id);


    boolean add(Long projectId, String userId);

    String listUserRelName(Long id);

    boolean updateExpertRecall(Long id);

    /**
     * 根据登录用户（专家）查询所关联的项目
     * @param projectExpertEntity 查询实体
     * @return 查询结果集
     */
    public List<ProjectExpertEntity> listByUid(ProjectExpertEntity projectExpertEntity);

    /**
     * 图表查询
     * @param pid 项目id
     * @return 查询结果
     */
    public List<ProjectExpertEntity> chart(Long pid);

    /**
     * 查询非当前专家的所有项目
     * @param projectExpertEntity 查询实体
     * @return 查询结果集
     */
    List<ProjectExpertEntity> listByUidNotExpert(ProjectExpertEntity projectExpertEntity);

    List<ProjectExpertEntity> chart2021(Long pid);

    boolean updateExpertRecall2021(Long id);

    boolean add2023(String projectIds, String userIds);

    boolean approvalNext(String projectIds);
}
